This is a memo for FeynArts.
<< FeynArts`Last caracter is next to "1" on my keybord. (I use MacBookPro.) CreateTopologies[l, i -> f]; Paint[%]; l: # of loop i: # of initial state f: # of final stateThis include not 1PI diagram. If we want only 1PI diagrams, we should type as follows: CreateTopologies[l, i -> f, ExcludeTopologies -> Internal]; Paint[%];We can name them for convenience; test=CreateTopologies[l, i -> f, ExcludeTopologies -> Internal]; Paint[test];TIPs: I prefer "Paint[test];" than "Paint[test]" because latter show some information which is usually not needed.
(* generate diagrams *) CreateTopologies[1 ,1 -> 2 ,ExcludeTopologies -> Internal ]; (* Insert physical fields, , V[2]= Z boson, F[4, {3}] = bottom, "-" means anti-particle. *) InsertFields[ t12, V[2] -> {F[4, {3}], -F[4, {3}]} ]; (* Draw the diagrmas *) Paint[% ,ColumnsXRows->4 ,PaintLevel->{Classes} ];photon self-energy in QED at one-loop CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal]; InsertFields[ %, V[1] -> V[1], Model->"QED" ]; Paint[%, PaintLevel->{Classes}];We specify the model in 2nd line. If we use "Paint[%];" instead of "Paint[%, PaintLevel->{Classes}];", then we will find unwanted diagrams as well as what we want. This unwanted diagrams are generic diagram and represent where are fermions, gauge boson without specify the particle names. Another way to eliminate the generic diagrams is to use "InsertionLevel -> {Classes}" in InsertFields command: CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal]; InsertFields[ %, V[1] -> V[1], Model->"QED", InsertionLevel -> {Classes}]; Paint[%];
CreateTopologies[1, 1 -> 1, ExcludeTopologies -> Internal]; InsertFields[ %, V[1] -> V[1], Model->"QED", InsertionLevel -> {Classes}]; amp = CreateFeynAmp[%]; amp >> testQEDcalc.amp Clear[dam]This testQEDcalc.amp can be read in FormCalc. << FormCalc` CalcFeynAmp[<< testQEDcalc.amp] << FormCalc` でエラーが出た。ファイルが読めないらしい。無視して動かそうとしても動かなかったので、FormCalc-9.8/Formcalc.m を以下のように改造。
(* $FormCalcDir = DirectoryName[ File /. FileInformation[System`Private`FindFile[$Input]] ] *) $FormCalcDir = DirectoryName["/Users/abetomo/work/programs/FormCalc-9.8/README"] $FormCalcDir に FormCalc の Directory を教えれば良い。READMEを付けているのは、そのファイルのあるディレクトリをDirectoryName[]は読み取るため。FormCalc の DirectoryにあるファイルならREADMEでなくても良いはず。とりあえずこれで動いたのでよしとする。
|